package Game
{
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;

	/* модуль. является классом сплошь из статичеких методов и свойств,что позволяет объявить слушатели событий 
	   для мыши.фпс. Хранить скорость, ускорения 
	*/
	public final class ControlModul
	{
		//Константы управления 
		public static var maxSpeed:uint=20;
		public static const minSpeed:uint=0;
		public static const acc:Number=.2;//ускорение объекта. включается когда пользователь жмет кнопку мыши-Газ
		public static const rubb:Number=.95;//трение.
		public static const blockMass:int=1;
		public static const heroMass:int=3;		
		
		
		//Переменные управления объектами СПС КЭП
		public static var heroX:int;
		public static var heroY:int;
		public static var _speedX:Number=0;
		public static var _speed:Number=0;
		private static var _distance:int=0;//дистанция пройдення за время игры.необходимо для фона и конца игры
		
		//массы объектов
		private static const enemy_wght:Number = 2;
		private static const hero_wght:Number = 1;
		public static function restart():void{
			_distance=0;
			_speed=0;
			_speedX=0;
			heroX=0;
			heroY=0;
		}
		public static function move():void	{//ехать..
			if (_speed>=0) _speed+=acc;
			if (_speed>=maxSpeed) _speed=maxSpeed;
			if(_speed<=minSpeed) _speed=minSpeed;
			_distance+=speed;
		}
		public static function stop():void{//тормозить 
			if (_speed>0) _speed*=rubb;
			if (_speed>=maxSpeed) _speed=maxSpeed;
			if(_speed<=minSpeed) _speed=minSpeed;
			_distance+=speed;
		}
		public static function get speed():int{//ВОЗВРАЩАЕТ int а не NUMBER т.е происходит округление и  по идее кирпичи от фона не будут отставать и дрыгаться на нем
			return _speed;
		}
		public static function get speedX():int{
			return _speedX;
		}
		public static function get distance():int{
			return _distance;
		}
		public static function hit(a:Bird,b:DisplayObject):void{
			_speed/=2;
		}

	}
}
